// 整体程序总线
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:project_award_statistics/pages/mobile_material_design/about_page/about_page.dart';
import 'package:project_award_statistics/pages/mobile_material_design/award_profile_edit/profile_edit.dart';
import 'package:project_award_statistics/pages/mobile_material_design/change_passwd_page/change_passwd_page.dart';
import 'package:project_award_statistics/pages/mobile_material_design/home_page/home_page.dart';
import 'package:project_award_statistics/pages/mobile_material_design/login_page/login_page.dart';
import 'package:project_award_statistics/pages/mobile_material_design/register_page/register_page.dart';
import 'package:project_award_statistics/pages/mobile_material_design/themes/light_mode.dart';
import 'package:project_award_statistics/utils/load_award_info_from_db/load_award_info.dart';
import 'package:provider/provider.dart';

void main() async
  {
    WidgetsFlutterBinding.ensureInitialized();   // 确保程序主窗口已加载
    runApp(
      ChangeNotifierProvider(   // 创建并启动监听控件变化对象,在用户获奖列表发生变化后列表能及时做出变化         
        create:(context)=>DBProvider_AwardInfo(),
        child: const MyApp(),
      ),
    );
  }

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return (Platform.isLinux || Platform.isWindows || Platform.isMacOS)   // 判断是不是桌面操作系统
    ? MaterialApp(   // 如果是,那就使用Material Design设计
      debugShowCheckedModeBanner: false,  // 关闭右上角DEBUG提示图片
      theme:lightMode,
      home: LoginPage_Mobile(),   
      routes:   // 设置整个程序的页面路由跳转
        {
          '/login_page':(context) => LoginPage_Mobile(),              //  设置"登录"界面路由名称
          '/home_page':(context) => HomePage_Mobile(stu_name:"-1",),                // 设置"主界面"路由名称,由于stuname在跳转主页后会直接获取,所以这里直接给"-1"不会出现运行问题    
          '/profile_edit_page':(context) => ProfileEdit_Mobile(stu_name:"-1",),          // 设置"获奖记录"页面路由名称,由于stuname在跳转主页后会直接获取,所以这里直接给"-1"不会出现运行问题                         
          '/about_page':(context) => AboutPage_Mobile(),              // 设置"关于"界面的路由名称
          '/register_page':(context)=>RegisterPage_Mobile(),          // 设置"用户注册"界面路由名称
        },
    )
    : MaterialApp(   // 如果不是,那就使用AdWaita的GTK4设计                   
      debugShowCheckedModeBanner: false,  // 关闭右上角DEBUG提示图片
      theme:lightMode,
      home: LoginPage_Mobile(),   
      routes:   // 设置整个程序的页面路由跳转
        {
          '/login_page':(context) => LoginPage_Mobile(),              // 设置"登录"界面路由名称
          '/change_passwd_page':(context) => ChangePasswdPage_Mobile(stu_name:"-1"),   // 设置"修改密码"界面路由名称,由于stuname在输入用户名后会直接获取,所以这里直接给"-1"不会出现运行问题 
          '/home_page':(context) => HomePage_Mobile(stu_name:"-1",),                // 设置"主界面"路由名称,由于stuname在跳转主页后会直接获取,所以这里直接给"-1"不会出现运行问题    
          '/profile_edit_page':(context) => ProfileEdit_Mobile(stu_name:"-1",),          // 设置"获奖记录"页面路由名称,由于stuname在跳转主页后会直接获取,所以这里直接给"-1"不会出现运行问题                         
          '/about_page':(context) => AboutPage_Mobile(),              // 设置"关于"界面的路由名称
          '/register_page':(context)=>RegisterPage_Mobile(),          // 设置"用户注册"界面路由名称
        },
      );
  }
}
